package io.gitee.itxinmeng.encrypt.spring.boot.common.encrypt.strategy;

import io.gitee.itxinmeng.encrypt.spring.boot.autoconfigure.properties.EncryptProperties;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.server.ServerHttpRequest;

/**
 * 加/解密接口
 */
public interface IEncryptStrategy {

    /**
     * 加密 Reponse
     * @param body
     * @param request
     * @return 加密后的内容
     */
    Object encryptBody(Object body, ServerHttpRequest request);

    /**
     * 解密 Request
     * @param headers
     * @param content
     * @return 解密后的内容
     */
    String decryptBody(HttpHeaders headers, String content);

    /**
     * 加密方式检查，如：AES加密需要配制 secret
     * @return True 可以使用，False 不可用
     */
    Boolean check();
}
